<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>promise_面试题</title>
</head>
<body>

<!-- 面试题1 -->
<script type="text/javascript">
  //3 2 4 1
/*  setTimeout(()=>{
    console.log(1)
  },0)
  Promise.resolve().then(()=>{
    console.log(2)
  })
  Promise.resolve().then(()=>{
    console.log(4)
  })
  console.log(3)*/
</script>


<!-- 面试题2 -->
<script type="text/javascript">
  // 宏: 1
  // 微: 3
  // 2 5 3 4 1
  /*setTimeout(() => {
    console.log(1)
  }, 0)
  new Promise((resolve) => {
    console.log(2)
    resolve()
  }).then(() => {
    console.log(3)
  }).then(() => {
    console.log(4)
  })
  console.log(5)*/
</script>

<!-- 面试题3 -->
<script type="text/javascript">
  //宏: 5
  //微: 1 2
  //3 7 4  1 2 5
  /*const first = () => {
      return new Promise((resolve, reject) => {
          console.log(3)
          let p = new Promise((resolve, reject) => {
              console.log(7)
              setTimeout(() => {
                  console.log(5)
                  resolve(6) //没有任何作用!!!!
              }, 0)
              resolve(1)
          })
          resolve(2)
          p.then((arg) => {
              console.log(arg)
          })
      })
  }

  first().then((arg) => {
    console.log(arg)
  })
  console.log(4)*/
</script>


<!-- 面试题4 -->
<script type="text/javascript">

  //宏 0
  //微 2 8 4 6 5
  // 1 7 2 3 8 4 6 5 0

  setTimeout(() => {
    console.log("0")
  }, 0)

  new Promise((resolve,reject)=>{
    console.log("1")
    resolve()
  }).then(()=>{        
    console.log("2")
    new Promise((resolve,reject)=>{
      console.log("3")
      resolve()
    }).then(()=>{      
      console.log("4")
    }).then(()=>{       
      console.log("5")
    })
  }).then(()=>{  
    console.log("6")
  })

  new Promise((resolve,reject)=>{
    console.log("7")
    resolve()
  }).then(()=>{         
    console.log("8")
  })

</script>

</body>
</html>